

//* ----------------------------------------------------------------------------------------------------
//* 浮点间转换
#if defined(__x86_64__) && !NO_EXTFLOAT
__FntoFn(16, 32);
__FntoFn(16, 64);
__FntoFn(32, 16);
__FntoFn(64, 16);
#endif
__FntoFn(32, 64);
__FntoFn(64, 32);

//* ----------------------------------------------------------------------------------------------------
//* 有符号间转换
__SntoSn(8, 16);
__SntoSn(8, 32);
__SntoSn(8, 64);
__SntoSn(16, 8);
__SntoSn(16, 32);
__SntoSn(16, 64);
__SntoSn(32, 8);
__SntoSn(32, 16);
__SntoSn(32, 64);
__SntoSn(64, 8);
__SntoSn(64, 16);
__SntoSn(64, 32);

//* ----------------------------------------------------------------------------------------------------
//* 无符号间转换
__UntoUn(8, 16);
__UntoUn(8, 32);
__UntoUn(8, 64);
__UntoUn(16, 8);
__UntoUn(16, 32);
__UntoUn(16, 64);
__UntoUn(32, 8);
__UntoUn(32, 16);
__UntoUn(32, 64);
__UntoUn(64, 8);
__UntoUn(64, 16);
__UntoUn(64, 32);

//* ----------------------------------------------------------------------------------------------------
//* 有符号转浮点
#if defined(__x86_64__) && !NO_EXTFLOAT
__SntoFn(8, 16);
__SntoFn(16, 16);
__SntoFn(32, 16);
__SntoFn(64, 16);
#endif
__SntoFn(8, 32);
__SntoFn(8, 64);
__SntoFn(16, 32);
__SntoFn(16, 64);
__SntoFn(32, 32);
__SntoFn(32, 64);
__SntoFn(64, 32);
__SntoFn(64, 64);

//* ----------------------------------------------------------------------------------------------------
//* 无符号转浮点
#if defined(__x86_64__) && !NO_EXTFLOAT
__UntoFn(8, 16);
__UntoFn(16, 16);
__UntoFn(32, 16);
__UntoFn(64, 16);
#endif
__UntoFn(8, 32);
__UntoFn(8, 64);
__UntoFn(16, 32);
__UntoFn(16, 64);
__UntoFn(32, 32);
__UntoFn(32, 64);
__UntoFn(64, 32);
__UntoFn(64, 64);

//* ----------------------------------------------------------------------------------------------------
//* 浮点转有符号
#if defined(__x86_64__) && !NO_EXTFLOAT
__FntoSn(16, 8);
__FntoSn(16, 16);
__FntoSn(16, 32);
__FntoSn(16, 64);
#endif
__FntoSn(32, 8);
__FntoSn(32, 16);
__FntoSn(32, 32);
__FntoSn(32, 64);
__FntoSn(64, 8);
__FntoSn(64, 16);
__FntoSn(64, 32);
__FntoSn(64, 64);

//* ----------------------------------------------------------------------------------------------------
//* 浮点转无符号
#if defined(__x86_64__) && !NO_EXTFLOAT
__FntoUn(16, 8);
__FntoUn(16, 16);
__FntoUn(16, 32);
__FntoUn(16, 64);
#endif
__FntoUn(32, 8);
__FntoUn(32, 16);
__FntoUn(32, 32);
__FntoUn(32, 64);
__FntoUn(64, 8);
__FntoUn(64, 16);
__FntoUn(64, 32);
__FntoUn(64, 64);

//* ----------------------------------------------------------------------------------------------------
//* 无符号转有符号
__UntoSn(8, 16);
__UntoSn(8, 32);
__UntoSn(8, 64);
__UntoSn(16, 8);
__UntoSn(16, 32);
__UntoSn(16, 64);
__UntoSn(32, 8);
__UntoSn(32, 16);
__UntoSn(32, 64);
__UntoSn(64, 8);
__UntoSn(64, 16);
__UntoSn(64, 32);

//* ----------------------------------------------------------------------------------------------------
//* 有符号转无符号
__SntoUn(8, 16);
__SntoUn(8, 32);
__SntoUn(8, 64);
__SntoUn(16, 8);
__SntoUn(16, 32);
__SntoUn(16, 64);
__SntoUn(32, 8);
__SntoUn(32, 16);
__SntoUn(32, 64);
__SntoUn(64, 8);
__SntoUn(64, 16);
__SntoUn(64, 32);

//* ----------------------------------------------------------------------------------------------------
//* 无符号转对应有符号
__UtoSn(8);
__UtoSn(16);
__UtoSn(32);
__UtoSn(64);

//* ----------------------------------------------------------------------------------------------------
//* 有符号转对应无符号
__StoUn(8);
__StoUn(16);
__StoUn(32);
__StoUn(64);

//* ---------------------------------------------------------------------------------------------------
//* 我转换成我自己

__to_self(S8, i8);
__to_self(U8, u8);
__to_self(S16, i16);
__to_self(U16, u16);
__to_self(S32, i32);
__to_self(U32, u32);
__to_self(S64, i64);
__to_self(U64, u64);
#if defined(__x86_64__) && !NO_EXTFLOAT
__to_self(F16, f16);
#endif
__to_self(F32, f32);
__to_self(F64, f64);

//* ---------------------------------------------------------------------------------------------------
